import {
	baseUrl
} from '@/core/baseUrl.js';
// import {
// 	updateArea,
// 	getPayInfo
// } from '@/core/api/public.js';
import {
	checkPermission
} from '@/core/libs/auth.js';
var timer;
// 交易所名称列表 
let exchangeArr = ['Binance', 'OKX', 'Bybit', 'Coinbase', 'Bitfinex', 'Kraken', 'Bitstamp'];
// 获取交易所下标
function getExchangeImg(name){
	// return exchangeArr.indexOf(name)
	return name.toLowerCase();
}
// 处理图片域名
function changeImg(url){
	if(url.indexOf('http')!=-1){
		return url;
	}
	return baseUrl+'/digital-mall/'+url;
}
// 弹窗提示
function showToast(title, icon = 'none', duration = 1500) {
	uni.showToast({
		title,
		icon,
		duration
	})
}
// 加载中
function showLoading(title='加载中',) {
	uni.showLoading({
		title,
		mask:true
	})
}
// 跳转
function navTo(url, type = 1) {
	console.log(url, type);
	if (!url) {
		return;
	}
	switch (type) {
		case 1:
			uni.navigateTo({
				url,
				fail: res => {
					console.log('navTo', res)
				}
			})
			break;
		case 2:
			uni.redirectTo({
				url,
				fail: res => {
					console.log('navTo', res)
				}
			})
			break;
		case 3:
			uni.reLaunch({
				url,
				fail: res => {
					console.log('navTo', res)
				}
			})
			break;
		case 4:
			uni.switchTab({
				url,
				fail: res => {
					console.log('navTo', res)
				}
			})
			break;
		default:
			break;
	}
}
// 返回
function goBack(delta = 1) {
	uni.navigateBack({
		delta
	})
}
// 处理传参
function handleUrl(src, obj) {
	return src + '?obj=' + encodeURIComponent(JSON.stringify(obj));
}
// 处理接参
function changeOptions(str) {
	return JSON.parse(decodeURIComponent(str));
}
// 获取页面剩余高度
function getScrollHeight(elementClass) {
	return new Promise((resolve, reject) => {
		let scroll_content_height = 0;
		uni.getSystemInfo({
			success: (res) => {
				let win_height = res.windowHeight;
				const scroll_node = uni.createSelectorQuery().select(`.${elementClass}`);
				scroll_node
					.boundingClientRect((result) => {
						scroll_content_height = win_height - result.top;
						// console.log(scroll_content_height,"新的高度");
						resolve(scroll_content_height)
					})
					.exec();
			}
		})
	})
}
// 上传图片
async function uploadImg(options,e) {
	let sourceType = await chooseImgBefore(e);
	let fileList = await chooseImg(options, sourceType);
	let promiseList = [];
	for (let i = 0; i < fileList.length; i++) {
		promiseList.push(uploadFile(fileList[i]));
	}
	uni.showLoading({
		title: '上传中',
		mask: true
	})
	return Promise.all(promiseList)
}
// 上传视频
async function uploadVideo(options) {
	let sourceType = await chooseImgBefore();
	let file = await chooseVideo(options, sourceType);
	let promiseList = [];
	promiseList.push(uploadFile(file));
	uni.showLoading({
		title: '上传中',
		mask: true
	})
	return Promise.all(promiseList)
}

function chooseImgBefore(tapIndex) {
	// 'album', 'camera'
	return new Promise((res, rej) => {
		let sourceType;
		if (tapIndex == 1) {
			sourceType = ['camera'];
			checkPermission('android.permission.CAMERA',{title:'相机权限说明',content:'用于您使用更换头像、发布评论/分享、下载、与客服沟通等场景'});
		} else {
			sourceType = ['album'];
			checkPermission('android.permission.WRITE_EXTERNAL_STORAGE',{title:'存储空间/照片权限说明',content:'便于您使用该功能上传您的照片/图片/视频及用于更换头像、发布评论/分享、下载、与客服沟通等场景中读取和写入相册和文件内容。'});
		}
		res(sourceType);
		
		// uni.showActionSheet({
		// 	itemList: ['拍摄', '从相册选择'],
		// 	success: e => {
		// 		console.log('选中了第' + (e.tapIndex + 1) + '个按钮');
		// 		let sourceType;
		// 		if (e.tapIndex == 0) {
		// 			sourceType = ['camera'];
		// 			checkPermission('android.permission.CAMERA',{title:'相机权限说明',content:'用于您使用更换头像、发布评论/分享、下载、与客服沟通等场景'});
		// 		} else {
		// 			sourceType = ['album'];
		// 			checkPermission('android.permission.WRITE_EXTERNAL_STORAGE',{title:'存储空间/照片权限说明',content:'便于您使用该功能上传您的照片/图片/视频及用于更换头像、发布评论/分享、下载、与客服沟通等场景中读取和写入相册和文件内容。'});
		// 		}
		// 		res(sourceType);
		// 	},
		// 	fail: res => {
		// 		console.log(res.errMsg);
		// 	}
		// });
	})
}
// 选择图片
function chooseImg(options, sourceType) {
	return new Promise((res, rej) => {
		uni.chooseImage({
			count: options.count ? options.count : 9,
			sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图，默认二者都有
			sourceType, //从相册选择
			success: e => {
				// uni.showLoading();
				res(e.tempFilePaths);
			},
			fail: err => {
				showToast('选择图片失败');
			}
		})
	})
}
function chooseVideo(options, sourceType){
	return new Promise((res, rej) => {
		uni.chooseVideo({
			sourceType, //从相册选择
			success: e => {
				// uni.showLoading();
				console.log(e,'cs');
				res(e.tempFilePath);
			},
			fail: err => {
				uni.showLoading();
				showToast('选择视频失败');
			}
		})
	})
}
// 上传文件
function uploadFile(filePath) {
	return new Promise((res, rej) => {
		uni.uploadFile({
			url: baseUrl + '/digital-mall/sys/common/upload', //仅为示例，非真实的接口地址
			filePath,
			header:{
				'X-Access-Token':uni.getStorageSync('token')
			},
			name: 'file',
			success: uploadFileRes => {
				console.log(JSON.parse(uploadFileRes.data),'cs1');
				// baseUrl+'/digital-mall/'
				res(JSON.parse(uploadFileRes.data).message);
			},
			fail: res => {
				showToast('上传失败');
			}
		});
	})
}
// 处理时间
function changeTime(e, type=1) {
	let a = new Date(e * 1000);
	let year = a.getFullYear();
	let month = a.getMonth() + 1;
	let day = a.getDate();
	if (type == 1) {
		return year + '-' + buling(month, 2, '0') + '-' + buling(day, 2, '0');
	}
}
// 处理时间（转时间戳）
function changeTime2(time) {
	if (Date.parse(new Date(time))) {

	} else {
		time = time.split('-').join('/');
	}
	return new Date(time).getTime() / 1000
}
// 补零
function buling(str, num, a) {
	return String(str).padStart(num, a);
}

// 预览图片
function previewImg(urls,current=0) {
	uni.previewImage({
		urls,
		current
	});
}
// 获取上一个页面的页面栈
function prePage() {
	let pages = getCurrentPages();
	let prePage = pages[pages.length - 2];
	return prePage.$vm;
}
// 下载文件
function downLoadFile(url) {
	uni.downloadFile({ //调用官方提供的uni.downloadFile
		url: url, //将刚刚提前准备好的url传过来
		header: {
			//如果需要填写请求头信息则在此处填写
		},
		success: res => {
			if (res.statusCode === 200) {
				console.log('下载成功：', res.tempFilePath);
				//下载成功，并把下载好的文件保存在临时区域中
				checkPermission('android.permission.WRITE_EXTERNAL_STORAGE',{title:'存储空间/照片权限说明',content:'便于您使用该功能上传您的照片/图片/视频及用于更换头像、发布评论/分享、下载、与客服沟通等场景中读取和写入相册和文件内容。'});
				uni.saveFile({ //使用该功能，以将临时文件保存在手机中可长久存储的区域
					tempFilePath: res.tempFilePath,
					success: saveResult => {
						// 在保存文件成功后，使用 uni.openDocument 方法打开文件
						console.log("文件保存成功:", saveResult)
						uni.openDocument({
							filePath: saveResult.savedFilePath,
							// fileType: fileType, //这里把预先限定好的文件类型传来
							success: res => {
								console.log("文件打开成功!");
								//至此，手机会从app中跳转到文件预览界面
								//之后可从预览界面返回app中
							},
							fail: err => {
								console.log('打开失败', err);
							},
						});
					},
					fail: err => {
						console.log('保存文件失败', err);
					},
				});

			}
		},
		fail: err => {
			console.log('下载失败：', err);
		}
	});
}
// 设置导航栏文字颜色
function setStatusBarStyle(model){
	plus.navigator.setStatusBarStyle(model=='dark'?'light':'dark');
	setTimeout(e=>{
		plus.navigator.setStatusBarStyle(model=='dark'?'light':'dark');
	},100)
}
// 复制
function copyText(str){
	str = String(str);
	uni.setClipboardData({
		data:str,
	})
}
export default {
	showToast,
	showLoading,
	navTo,
	goBack,
	handleUrl,
	changeOptions,
	uploadImg,
	uploadVideo,
	getScrollHeight,
	changeTime,
	changeTime2,
	prePage,
	downLoadFile,
	previewImg,
	uploadFile,
	setStatusBarStyle,
	changeImg,
	getExchangeImg,
	copyText
}